home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Blogowanie poza sfera / Flock 0.9.1.3 stable / flock-0.9.1.3.en-US.win32.exe / flock / chrome / browser.jar / content / browser / preferences / privacy.js < prev    next >
Text File  |  2006-09-22  |  9KB  |  246 lines

  1. /*
  2. //@line 40 "/cygdrive/K/tinderbuild/src/flock/mozilla/browser/components/preferences/privacy.js"
  3. */
  4.  
  5. var gPrivacyPane = {
  6.  
  7.   /**
  8.    * Sets up the UI for the number of days of history to keep, and updates the
  9.    * label of the "Clear Now..." button.
  10.    */
  11.   init: function ()
  12.   {
  13.     this.updateHistoryDaysUI();
  14.     this.updateClearNowButtonLabel();
  15.   },
  16.  
  17.   // HISTORY
  18.  
  19.   /*
  20.    * Preferences:
  21.    *
  22.    * browser.history_expire_days
  23.    * - the number of days of history to remember
  24.    * browser.history_expire_days.mirror
  25.    * - a preference whose value mirrors that of browser.history_expire_days, to
  26.    *   make the "days of history" checkbox easier to code
  27.    * browser.formfill.enable
  28.    * - true if entries in forms and the search bar should be saved, false
  29.    *   otherwise
  30.    * browser.download.manager.retention
  31.    * - determines when downloads are automatically removed from the download
  32.    *   manager:
  33.    *
  34.    *     0 means remove downloads when they finish downloading
  35.    *     1 means downloads will be removed when the browser quits
  36.    *     2 means never remove downloads
  37.    */
  38.  
  39.   /**
  40.    * Initializes the days-of-history mirror preference and connects it to the
  41.    * days-of-history checkbox so that updates to the textbox are transmitted to
  42.    * the real days-of-history preference.
  43.    */
  44.   updateHistoryDaysUI: function ()
  45.   {
  46.     var pref = document.getElementById("browser.history_expire_days");
  47.     var mirror = document.getElementById("browser.history_expire_days.mirror");
  48.     var textbox = document.getElementById("historyDays");
  49.     var checkbox = document.getElementById("rememberHistoryDays");
  50.  
  51.     // handle mirror non-existence or mirror/pref unsync
  52.     if (mirror.value === null || mirror.value != pref.value)
  53.       mirror.value = pref.value ? pref.value : pref.defaultValue;
  54.  
  55.     checkbox.checked = (pref.value > 0);
  56.     textbox.disabled = !(pref.value > 0);
  57.  
  58.     // hook up textbox to mirror preference and force a preference read
  59.     textbox.setAttribute("onsynctopreference", "return gPrivacyPane._writeHistoryDaysMirror();");
  60.     textbox.setAttribute("preference", "browser.history_expire_days.mirror");
  61.     mirror.updateElements();
  62.   },
  63.  
  64.   /**
  65.    * Stores the days of history to the actual days-of-history preference and
  66.    * returns that value, to be stored in the mirror preference.
  67.    */
  68.   _writeHistoryDaysMirror: function ()
  69.   {
  70.     var pref = document.getElementById("browser.history_expire_days");
  71.     var textbox = document.getElementById("historyDays");
  72.     pref.value = textbox.value;
  73.  
  74.     // don't override the value in the textbox
  75.     return undefined;
  76.   },
  77.  
  78.   /**
  79.    * Responds to the checking or unchecking of the days-of-history UI, storing
  80.    * the appropriate value to the days-of-history preference and enabling or
  81.    * disabling the number textbox as appropriate.
  82.    */
  83.   onchangeHistoryDaysCheck: function ()
  84.   {
  85.     var pref = document.getElementById("browser.history_expire_days");
  86.     var mirror = document.getElementById("browser.history_expire_days.mirror");
  87.     var textbox = document.getElementById("historyDays");
  88.     var checkbox = document.getElementById("rememberHistoryDays");
  89.  
  90.     pref.value = checkbox.checked ? mirror.value : 0;
  91.     textbox.disabled = !checkbox.checked;
  92.   },
  93.  
  94.   /**
  95.    * Converts the value of the browser.download.manager.retention preference
  96.    * into a Boolean value.  "remove on close" and "don't remember" both map
  97.    * to an unchecked checkbox, while "remember" maps to a checked checkbox.
  98.    */
  99.   readDownloadRetention: function ()
  100.   {
  101.     var pref = document.getElementById("browser.download.manager.retention");
  102.     return (pref.value == 2);
  103.   },
  104.  
  105.   /**
  106.    * Returns the appropriate value of the browser.download.manager.retention
  107.    * preference for the current UI.
  108.    */
  109.   writeDownloadRetention: function ()
  110.   {
  111.     var checkbox = document.getElementById("rememberDownloads");
  112.     return checkbox.checked ? 2 : 0;
  113.   },
  114.  
  115.   // COOKIES
  116.  
  117.   /*
  118.    * Preferences:
  119.    *
  120.    * network.cookie.cookieBehavior
  121.    * - determines how the browser should handle cookies:
  122.    *     0   means enable all cookies
  123.    *     1   means allow cookies from the "originating" server only; see
  124.    *         netwerk/cookie/src/nsCookieService.cpp for a hairier definition
  125.    *     2   means disable all cookies
  126.    *     3   means use P3P policy to decide, which is probably broken
  127.    * network.cookie.lifetimePolicy
  128.    * - determines how long cookies are stored:
  129.    *     0   means keep cookies until they expire
  130.    *     1   means ask how long to keep each cookie
  131.    *     2   means keep cookies until the browser is closed
  132.    */
  133.  
  134.   /**
  135.    * Reads the network.cookie.cookieBehavior preference value and
  136.    * enables/disables the "Keep until:" UI accordingly, returning true
  137.    * if cookies are enabled.
  138.    */
  139.   readAcceptCookies: function ()
  140.   {
  141.     var pref = document.getElementById("network.cookie.cookieBehavior");
  142.     var keepUntil = document.getElementById("keepUntil");
  143.     var menu = document.getElementById("keepCookiesUntil");
  144.  
  145.     // anything other than "disable all cookies" maps to "accept cookies"
  146.     var acceptCookies = (pref.value != 2);
  147.  
  148.     keepUntil.disabled = menu.disabled = !acceptCookies;
  149.     
  150.     return acceptCookies;
  151.   },
  152.  
  153.   /**
  154.    * Enables/disables the "keep until" label and menulist in response to the
  155.    * "accept cookies" checkbox being checked or unchecked.
  156.    */
  157.   writeAcceptCookies: function ()
  158.   {
  159.     var checkbox = document.getElementById("acceptCookies");
  160.     return checkbox.checked ? 0 : 2;
  161.   },
  162.  
  163.   /**
  164.    * Displays fine-grained, per-site preferences for cookies.
  165.    */
  166.   showCookieExceptions: function ()
  167.   {
  168.     var bundlePreferences = document.getElementById("bundlePreferences");
  169.     var params = { blockVisible   : true, 
  170.                    sessionVisible : true, 
  171.                    allowVisible   : true, 
  172.                    prefilledHost  : "", 
  173.                    permissionType : "cookie",
  174.                    windowTitle    : bundlePreferences.getString("cookiepermissionstitle"),
  175.                    introText      : bundlePreferences.getString("cookiepermissionstext") };
  176.     document.documentElement.openWindow("Browser:Permissions",
  177.                                         "chrome://browser/content/preferences/permissions.xul",
  178.                                         "", params);
  179.   },
  180.  
  181.   /**
  182.    * Displays all the user's cookies in a dialog.
  183.    */  
  184.   showCookies: function (aCategory)
  185.   {
  186.     document.documentElement.openWindow("Browser:Cookies",
  187.                                         "chrome://browser/content/preferences/cookies.xul",
  188.                                         "", null);
  189.   },
  190.  
  191.   // CLEAR PRIVATE DATA
  192.  
  193.   /*
  194.    * Preferences:
  195.    *
  196.    * privacy.sanitize.sanitizeOnShutdown
  197.    * - true if the user's private data is cleared on startup according to the
  198.    *   Clear Private Data settings, false otherwise
  199.    * privacy.sanitize.promptOnSanitize
  200.    * - true if sanitizing forces the user to accept a dialog, false otherwise
  201.    */
  202.  
  203.   /**
  204.    * Sets the label of the "Clear Now..." button according to the
  205.    * privacy.sanitize.promptOnSanitize preference. Read valueFromPreferences to
  206.    * only change the button when the underlying pref changes, since in the case
  207.    * of instantApply=false, the call to clearPrivateDataNow would result in the
  208.    * dialog appearing when the user just unchecked the "Ask me" checkbox.
  209.    */
  210.   updateClearNowButtonLabel: function ()
  211.   {
  212.     var pref = document.getElementById("privacy.sanitize.promptOnSanitize");
  213.     var clearNowButton = document.getElementById("clearDataNow");
  214.  
  215.     if (pref.valueFromPreferences)
  216.       clearNowButton.label = clearNowButton.getAttribute("label1"); // "Clear Now..."
  217.     else
  218.       clearNowButton.label = clearNowButton.getAttribute("label2"); // "Clear Now"
  219.   },
  220.  
  221.   /**
  222.    * Displays the Clear Private Data settings dialog.
  223.    */
  224.   showClearPrivateDataSettings: function ()
  225.   {
  226.     document.documentElement.openSubDialog("chrome://browser/content/preferences/sanitize.xul",
  227.                                            "", null);
  228.     this.updateClearNowButtonLabel();
  229.   },
  230.  
  231.   /**
  232.    * Either displays a dialog from which individual parts of private data may be
  233.    * cleared, or automatically clears private data according to current
  234.    * CPD settings.  The former happens if privacy.sanitize.promptOnSanitize is
  235.    * true, and the latter happens otherwise.
  236.    */
  237.   clearPrivateDataNow: function ()
  238.   {
  239.     const Cc = Components.classes, Ci = Components.interfaces;
  240.     var glue = Cc["@mozilla.org/browser/browserglue;1"]
  241.                  .getService(Ci.nsIBrowserGlue);
  242.     glue.sanitize(window || null);
  243.   }
  244.  
  245. };
  246.